package com.smarthome.common.tools.verify;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.smarthome.domain.enums.RegexType;

/**
 * 接口参数校验注解。
 *
 *
 * @author KongXiangyu
 *
 * @since 1.0
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Verify {

    // 最大长度
    int maxLength() default 0;

    // 最小长度
    int minLength() default 0;

    // 提供几种常用的正则验证
    RegexType regexType() default RegexType.NONE;

    // 自定义正则验证
    String regexExpression() default "";

    // 参数或者字段描述,这样能够显示友好的异常信息
    String description() default "";

}
